{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from rdkit import Chem\n",
    "from rdkit.Chem import Draw, MolFromSmiles, MolToSmiles"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Preprocess"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1870461\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chembl_id</th>\n",
       "      <th>canonical_smiles</th>\n",
       "      <th>standard_inchi</th>\n",
       "      <th>standard_inchi_key</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>CHEMBL153534</td>\n",
       "      <td>Cc1cc(cn1C)c2csc(N=C(N)N)n2</td>\n",
       "      <td>InChI=1S/C10H13N5S/c1-6-3-7(4-15(6)2)8-5-16-10...</td>\n",
       "      <td>MFRNFCWYPYSFQQ-UHFFFAOYSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>CHEMBL440060</td>\n",
       "      <td>CC[C@H](C)[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@@H...</td>\n",
       "      <td>InChI=1S/C123H212N44O34S/c1-19-63(12)96(164-11...</td>\n",
       "      <td>RSEQNZQKBMRQNM-VRGFNVLHSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>CHEMBL440245</td>\n",
       "      <td>CCCC[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCCCN...</td>\n",
       "      <td>InChI=1S/C160H268N50O41/c1-23-27-41-95-134(228...</td>\n",
       "      <td>FTKBTEIKPOYCEX-OZSLQWTKSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>CHEMBL440249</td>\n",
       "      <td>CC(C)C[C@@H]1NC(=O)CNC(=O)[C@@H](NC(=O)[C@H](N...</td>\n",
       "      <td>InChI=1S/C124H154ClN21O39/c1-57(2)48-81-112(17...</td>\n",
       "      <td>UYSXXKGACMHPIM-KFGDMSGDSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>CHEMBL405398</td>\n",
       "      <td>Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4</td>\n",
       "      <td>InChI=1S/C19H21BrN6O/c20-15-2-1-3-17(18(15)22-...</td>\n",
       "      <td>VDSXZXJEWIWBCG-UHFFFAOYSA-N</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      chembl_id                                   canonical_smiles  \\\n",
       "0  CHEMBL153534                        Cc1cc(cn1C)c2csc(N=C(N)N)n2   \n",
       "1  CHEMBL440060  CC[C@H](C)[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@@H...   \n",
       "2  CHEMBL440245  CCCC[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCCCN...   \n",
       "3  CHEMBL440249  CC(C)C[C@@H]1NC(=O)CNC(=O)[C@@H](NC(=O)[C@H](N...   \n",
       "4  CHEMBL405398             Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4   \n",
       "\n",
       "                                      standard_inchi  \\\n",
       "0  InChI=1S/C10H13N5S/c1-6-3-7(4-15(6)2)8-5-16-10...   \n",
       "1  InChI=1S/C123H212N44O34S/c1-19-63(12)96(164-11...   \n",
       "2  InChI=1S/C160H268N50O41/c1-23-27-41-95-134(228...   \n",
       "3  InChI=1S/C124H154ClN21O39/c1-57(2)48-81-112(17...   \n",
       "4  InChI=1S/C19H21BrN6O/c20-15-2-1-3-17(18(15)22-...   \n",
       "\n",
       "            standard_inchi_key  \n",
       "0  MFRNFCWYPYSFQQ-UHFFFAOYSA-N  \n",
       "1  RSEQNZQKBMRQNM-VRGFNVLHSA-N  \n",
       "2  FTKBTEIKPOYCEX-OZSLQWTKSA-N  \n",
       "3  UYSXXKGACMHPIM-KFGDMSGDSA-N  \n",
       "4  VDSXZXJEWIWBCG-UHFFFAOYSA-N  "
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_table('data/chembl_25_chemreps.txt')\n",
    "L = len(df)\n",
    "print(L)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<PIL.PngImagePlugin.PngImageFile image mode=RGB size=1200x600 at 0x7FB138D55898>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rands = np.random.choice(L, 16, replace=False)\n",
    "smiles = df.iloc[rands]['canonical_smiles'].values\n",
    "mols = []\n",
    "for s in smiles:\n",
    "    if s is None:\n",
    "        continue\n",
    "    mol = MolFromSmiles(s)\n",
    "    if mol is not None:\n",
    "        mols.append(mol)\n",
    "Draw.MolsToGridImage(mols, molsPerRow=4, subImgSize=(300,150))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lengths = list(map(len, df['canonical_smiles'].values))\n",
    "\n",
    "plt.hist(lengths, bins=100)\n",
    "plt.grid()\n",
    "plt.xlabel('SMILES length')\n",
    "plt.ylabel('Counts')\n",
    "plt.yscale('log')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Counts')"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAEGCAYAAABYV4NmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dfZRd1Xnf8e/Pkl/wC1gCM1UlVkcUxQkvNTZjgV/qTixHkl8akRQSZZEydKlWSrBru9StiP9QAksr0KQmxjUkqpERlFrIih1kU4wnwjeJV0BIOBhZYEVjI8NYCrI9MmbsIDPk6R/nudLR+M7M1Wj2DBr9Pmvddc99zt77nLvXoIe9z77nKCIwMzObaC+Z6hMwM7PpyQnGzMyKcIIxM7MinGDMzKwIJxgzMyti5lSfwIvFaaedFp2dneOu/5Of/IRXvepVE3dC05D7qD3up7G5j9ozGf308MMP/yAiXtdqnxNM6uzsZPv27eOu32g06O7unrgTmobcR+1xP43NfdSeyegnSd8daZ+nyMzMrAgnGDMzK8IJxszMinCCMTOzIpxgzMysCCcYMzMrwgnGzMyKcIIxM7MinGDMzKwI/5K/sM5V9xza3nP9e6fwTMzMJpdHMGZmVkTRBCPpI5J2SvqmpM9KeoWk2ZJ6Je3O91m18tdI6pO0S9KSWvwCSTty302SlPGXS7or41slddbq9OQxdkvqKfk9zczs5xVLMJLmAv8Z6IqIc4EZwHJgFbAlIhYAW/Izks7O/ecAS4GbJc3I5m4BVgIL8rU04yuAAxFxFnAjcEO2NRtYDVwILARW1xOZmZmVV3qKbCZwkqSZwCuBvcAyYH3uXw9cnNvLgA0RcTAingD6gIWS5gAnR8QDERHA7cPqNNvaBCzK0c0SoDciBiLiANDL4aRkZmaToFiCiYjvAX8MPAnsA56JiK8AHRGxL8vsA07PKnOBp2pN9Gdsbm4Pjx9RJyKGgGeAU0dpy8zMJkmxVWQ5JbUMmA/8CPicpN8erUqLWIwSH2+d+jmupJp6o6Ojg0ajMcrpjW5wcLBl/avPGzq0fSztTwcj9ZEdyf00NvdRe6a6n0ouU34X8EREfB9A0ueBtwJPS5oTEfty+mt/lu8HzqjVn0c1pdaf28Pj9Tr9OQ13CjCQ8e5hdRrDTzAi1gJrAbq6uuJYHswz0oN9rqgvU75s/O1PB35IVHvcT2NzH7Vnqvup5DWYJ4GLJL0yr4ssAh4HNgPNVV09wN25vRlYnivD5lNdzH8op9GelXRRtnP5sDrNti4B7s/rNPcBiyXNypHU4oyZmdkkKTaCiYitkjYBXweGgL+jGi28GtgoaQVVEro0y++UtBF4LMtfFREvZHNXArcBJwH35gvgVuAOSX1UI5fl2daApOuAbVnu2ogYKPVdzczs5xX9JX9ErKZaLlx3kGo006r8GmBNi/h24NwW8efIBNVi3zpg3VGespmZTRD/kt/MzIpwgjEzsyKcYMzMrAgnGDMzK8IJxszMinCCMTOzIpxgzMysCCcYMzMrwgnGzMyKcIIxM7MinGDMzKwIJxgzMyvCCcbMzIpwgjEzsyKcYMzMrAgnGDMzK8IJxszMiiiWYCS9XtIjtdePJX1Y0mxJvZJ25/usWp1rJPVJ2iVpSS1+gaQdue8mScr4yyXdlfGtkjprdXryGLsl9ZT6nmZm1lqxBBMRuyLi/Ig4H7gA+CnwBWAVsCUiFgBb8jOSzgaWA+cAS4GbJc3I5m4BVgIL8rU04yuAAxFxFnAjcEO2NZvqUc0XAguB1fVEZmZm5U3WFNki4NsR8V1gGbA+4+uBi3N7GbAhIg5GxBNAH7BQ0hzg5Ih4ICICuH1YnWZbm4BFObpZAvRGxEBEHAB6OZyUzMxsEsycpOMsBz6b2x0RsQ8gIvZJOj3jc4EHa3X6M/Z8bg+PN+s8lW0NSXoGOLUeb1HnEEkrqUZGdHR00Gg0xvn1YHBwsGX9q88bOrR9LO1PByP1kR3J/TQ291F7prqfiicYSS8DfhW4ZqyiLWIxSny8dQ4HItYCawG6urqiu7t7jFMcWaPRoFX9K1bdc2h7z2Xjb386GKmP7Ejup7G5j9oz1f00GVNk7wa+HhFP5+enc9qLfN+f8X7gjFq9ecDejM9rET+ijqSZwCnAwChtmZnZJJmMBPNbHJ4eA9gMNFd19QB31+LLc2XYfKqL+Q/ldNqzki7K6yuXD6vTbOsS4P68TnMfsFjSrLy4vzhjZmY2SYpOkUl6JfArwO/UwtcDGyWtAJ4ELgWIiJ2SNgKPAUPAVRHxQta5ErgNOAm4N18AtwJ3SOqjGrksz7YGJF0HbMty10bEQJEvaWZmLRVNMBHxU6qL7vXYD6lWlbUqvwZY0yK+HTi3Rfw5MkG12LcOWHf0Z21mZhPBv+Q3M7MinGDMzKwIJxgzMyvCCcbMzIpwgjEzsyKcYMzMrAgnGDMzK8IJxszMinCCMTOzIpxgzMysCCcYMzMrwgnGzMyKcIIxM7MinGDMzKwIJxgzMyui6PNgTlSdq+6Z6lMwM5tyRUcwkl4raZOkb0l6XNJbJM2W1Ctpd77PqpW/RlKfpF2SltTiF0jakftuykcnk49XvivjWyV11ur05DF2S+rBzMwmVekpsk8AX46IXwTeADwOrAK2RMQCYEt+RtLZVI88PgdYCtwsaUa2cwuwEliQr6UZXwEciIizgBuBG7Kt2cBq4EJgIbC6nsjMzKy8YglG0snAO4BbASLiZxHxI2AZsD6LrQcuzu1lwIaIOBgRTwB9wEJJc4CTI+KBiAjg9mF1mm1tAhbl6GYJ0BsRAxFxAOjlcFIyM7NJUPIazJnA94HPSHoD8DDwIaAjIvYBRMQ+Sadn+bnAg7X6/Rl7PreHx5t1nsq2hiQ9A5xaj7eoc4iklVQjIzo6Omg0GuP9rgwODh6qf/V5Qy3LHEv700G9j2xk7qexuY/aM9X9VDLBzATeBHwwIrZK+gQ5HTYCtYjFKPHx1jkciFgLrAXo6uqK7u7uUU5vdI1Gg2b9K0a4yL/nsvG3Px3U+8hG5n4am/uoPVPdTyWvwfQD/RGxNT9voko4T+e0F/m+v1b+jFr9ecDejM9rET+ijqSZwCnAwChtmZnZJCmWYCLiH4CnJL0+Q4uAx4DNQHNVVw9wd25vBpbnyrD5VBfzH8rptGclXZTXVy4fVqfZ1iXA/Xmd5j5gsaRZeXF/ccbMzGySlP4dzAeBOyW9DPgO8B+oktpGSSuAJ4FLASJip6SNVEloCLgqIl7Idq4EbgNOAu7NF1QLCO6Q1Ec1clmebQ1Iug7YluWujYiBkl/UzMyOVDTBRMQjQFeLXYtGKL8GWNMivh04t0X8OTJBtdi3Dlh3NOdrZmYTx7eKMTOzIpxgzMysCCcYMzMrwgnGzMyKcIIxM7MinGDMzKwIJxgzMyvCCcbMzIpwgjEzsyKcYMzMrAgnGDMzK8IJxszMinCCMTOzIpxgzMysCCcYMzMrwgnGzMyKKJpgJO2RtEPSI5K2Z2y2pF5Ju/N9Vq38NZL6JO2StKQWvyDb6ZN0Uz46mXy88l0Z3yqps1anJ4+xW1IPZmY2qSZjBPPLEXF+RDSfbLkK2BIRC4At+RlJZ1M98vgcYClws6QZWecWYCWwIF9LM74COBARZwE3AjdkW7OB1cCFwEJgdT2RmZlZeVMxRbYMWJ/b64GLa/ENEXEwIp4A+oCFkuYAJ0fEAxERwO3D6jTb2gQsytHNEqA3IgYi4gDQy+GkZGZmk2Bm4fYD+IqkAP4sItYCHRGxDyAi9kk6PcvOBR6s1e3P2PO5PTzerPNUtjUk6Rng1Hq8RZ1DJK2kGhnR0dFBo9EY9xcdHBw8VP/q84ZaljmW9qeDeh/ZyNxPY3MftWeq+6l0gnlbROzNJNIr6VujlFWLWIwSH2+dw4Eq4a0F6Orqiu7u7lFOb3SNRoNm/StW3dOyzJ7Lxt/+dFDvIxuZ+2ls7qP2THU/HfUUmaRZkv5VO2UjYm++7we+QHU95Omc9iLf92fxfuCMWvV5wN6Mz2sRP6KOpJnAKcDAKG2ZmdkkaSvBSGpIOjkvnn8D+Iykj49R51WSXtPcBhYD3wQ2A81VXT3A3bm9GVieK8PmU13Mfyin056VdFFeX7l8WJ1mW5cA9+d1mvuAxZkMZ+Wx72vnu5qZ2cRod4rslIj4saT/CHwmIlZLenSMOh3AF3JF8Uzg/0bElyVtAzZKWgE8CVwKEBE7JW0EHgOGgKsi4oVs60rgNuAk4N58AdwK3CGpj2rksjzbGpB0HbAty10bEQNtflczM5sA7SaYmTmd9RvAx9qpEBHfAd7QIv5DYNEIddYAa1rEtwPntog/RyaoFvvWAevaOVczM5t47V6D+QOqKaa+iNgm6Uxgd7nTMjOz4127I5h9EXHown5EfGesazBmZnZia3cE88k2Y2ZmZsAYIxhJbwHeCrxO0n+p7ToZmNG6lpmZ2dhTZC8DXp3lXlOL/5hqWbCZmVlLoyaYiPgr4K8k3RYR352kczIzs2mg3Yv8L5e0Fuis14mId5Y4KTMzO/61m2A+B/wp8GnghTHKmpmZtZ1ghiLilqJnYmZm00q7y5S/KOl3Jc3JJ1LOzvuSmZmZtdTuCKZ5Q8mP1mIBnDmxp2NmZtNFWwkmIuaXPhEzM5te2kowki5vFY+I2yf2dMzMbLpod4rszbXtV1DdDfnrgBOMmZm11O4U2QfrnyWdAtxR5IzMzGxaOOpHJqefUj1x0szMrKV2H5n8RUmb83UPsIvDjy0eq+4MSX8n6Uv5ebakXkm7831Wrew1kvok7ZK0pBa/QNKO3HdTPjqZfLzyXRnfKqmzVqcnj7FbUg9mZjap2r0G88e17SHguxHR32bdDwGPU92BGWAVsCUirpe0Kj//d0lnUz3y+BzgnwN/KekX8rHJtwArgQeB/wcspXps8grgQEScJWk5cAPwm/kbndVAF9Vy6oclbY6IA22es5mZHaO2RjB508tvUd1ReRbws3bqSZoHvJfqFjNNy4D1ub0euLgW3xARByPiCaAPWJiPaj45Ih6IiKBaWHBxi7Y2AYtydLME6I2IgUwqvVRJyczMJkm7y5R/A/gjoAEI+KSkj0bEpjGq/gnw3zjyVv8dEbEPICL2STo943OpRihN/Rl7PreHx5t1nsq2hiQ9A5xaj7eoU/9eK6lGRnR0dNBoNMb4OiMbHBw8VP/q84ZaljmW9qeDeh/ZyNxPY3MftWeq+6ndKbKPAW+OiP0Akl4H/CXVqKElSe8D9kfEw5K62ziGWsRilPh46xwORKwF1gJ0dXVFd3c7p9lao9GgWf+KVfe0LLPnsvG3Px3U+8hG5n4am/uoPVPdT+2uIntJM7mkH7ZR923Ar0raA2wA3inp/wBP57QX+d5stx84o1Z/HrA34/NaxI+oI2kmcAowMEpbZmY2SdpNMF+WdJ+kKyRdAdxDdbF9RBFxTUTMi4hOqov390fEbwObOXxvsx4Or0bbDCzPlWHzqZZBP5TTac9Kuiivr1w+rE6zrUvyGAHcByyWNCtXqS3OmJmZTZJRp8gknUV1zeSjkn4deDvV9NMDwJ3jPOb1wEZJK4AngUsBImKnpI3AY1Qr1a7KFWQAVwK3ASdRrR67N+O3AndI6qMauSzPtgYkXQdsy3LXRsTAOM/XzMzGYaxrMH8C/B5ARHwe+DyApK7c92/bOUhENKgWCBARP6S61UyrcmuANS3i24FzW8SfIxNUi33rgHXtnJ+ZmU28sabIOiPi0eHB/Ae/s8gZmZnZtDBWgnnFKPtOmsgTMTOz6WWsBLNN0vuHB/P6ycNlTsnMzKaDsa7BfBj4gqTLOJxQuoCXAb9W8sTMzOz4NmqCiYingbdK+mUOX2S/JyLuL35mZmZ2XGv3eTBfBb5a+FzMzGwaGe/zYMzMzEblBGNmZkU4wZiZWRFOMGZmVoQTjJmZFeEEY2ZmRTjBmJlZEU4wZmZWhBOMmZkV4QRjZmZFFEswkl4h6SFJ35C0U9IfZHy2pF5Ju/N9Vq3ONZL6JO2StKQWv0DSjtx3Uz46mXy88l0Z3yqps1anJ4+xW1IPZmY2qUqOYA4C74yINwDnA0slXQSsArZExAJgS35G0tlUjzw+B1gK3CxpRrZ1C7ASWJCvpRlfARyIiLOAG4Ebsq3ZwGrgQmAhsLqeyMzMrLxiCSYqg/nxpfkKYBmwPuPrgYtzexmwISIORsQTQB+wUNIc4OSIeCAiArh9WJ1mW5uARTm6WQL0RsRARBwAejmclMzMbBK0dTfl8coRyMPAWcCnImKrpI6I2AcQEfsknZ7F5wIP1qr3Z+z53B4eb9Z5KtsakvQMcGo93qJO/fxWUo2M6OjooNFojPu7Dg4OHqp/9XlDLcscS/vTQb2PbGTup7G5j9oz1f1UNMFExAvA+ZJeS/XgsnNHKa5WTYwSH2+d+vmtBdYCdHV1RXd39yinN7pGo0Gz/hWr7mlZZs9l429/Oqj3kY3M/TQ291F7prqfJmUVWUT8CGhQTVM9ndNe5Pv+LNYPnFGrNg/Ym/F5LeJH1JE0EzgFGBilLTMzmyQlV5G9LkcuSDoJeBfwLWAz0FzV1QPcndubgeW5Mmw+1cX8h3I67VlJF+X1lcuH1Wm2dQlwf16nuQ9YLGlWXtxfnDEzM5skJafI5gDr8zrMS4CNEfElSQ8AGyWtAJ4ELgWIiJ2SNgKPAUPAVTnFBnAlcBtwEnBvvgBuBe6Q1Ec1clmebQ1Iug7YluWujYiBgt/VzMyGKZZgIuJR4I0t4j8EFo1QZw2wpkV8O/Bz128i4jkyQbXYtw5Yd3RnbWZmE8W/5DczsyKcYMzMrAgnGDMzK8IJxszMinCCMTOzIpxgzMysCCcYMzMrwgnGzMyKcIIxM7Miit5N2Y7UWbvL8p7r3zuFZ2JmVp5HMGZmVoQTjJmZFeEEY2ZmRTjBmJlZEU4wZmZWhBOMmZkVUfKRyWdI+qqkxyXtlPShjM+W1Ctpd77PqtW5RlKfpF2SltTiF0jakftuykcnk49XvivjWyV11ur05DF2S+rBzMwmVckRzBBwdUT8EnARcJWks4FVwJaIWABsyc/kvuXAOcBS4OZ83DLALcBKYEG+lmZ8BXAgIs4CbgRuyLZmA6uBC4GFwOp6IjMzs/KKJZiI2BcRX8/tZ4HHgbnAMmB9FlsPXJzby4ANEXEwIp4A+oCFkuYAJ0fEAxERwO3D6jTb2gQsytHNEqA3IgYi4gDQy+GkZGZmk2BSfsmfU1dvBLYCHRGxD6okJOn0LDYXeLBWrT9jz+f28HizzlPZ1pCkZ4BT6/EWderntZJqZERHRweNRmO8X5HBwcFD9a8+b2jM8sdyrONVvY9sZO6nsbmP2jPV/VQ8wUh6NfDnwIcj4sd5+aRl0RaxGCU+3jqHAxFrgbUAXV1d0d3dPdK5janRaNCsf0XtljAj2XPZ+I91vKr3kY3M/TQ291F7prqfiq4ik/RSquRyZ0R8PsNP57QX+b4/4/3AGbXq84C9GZ/XIn5EHUkzgVOAgVHaMjOzSVJyFZmAW4HHI+LjtV2bgeaqrh7g7lp8ea4Mm091Mf+hnE57VtJF2eblw+o027oEuD+v09wHLJY0Ky/uL86YmZlNkpJTZG8D/j2wQ9IjGfs94Hpgo6QVwJPApQARsVPSRuAxqhVoV0XEC1nvSuA24CTg3nxBlcDukNRHNXJZnm0NSLoO2Jblro2IgVJf1MzMfl6xBBMRX6P1tRCARSPUWQOsaRHfDpzbIv4cmaBa7FsHrGv3fM3MbGL5l/xmZlaEE4yZmRXhBGNmZkU4wZiZWRFOMGZmVoQTjJmZFeEEY2ZmRTjBmJlZEU4wZmZWhBOMmZkV4QRjZmZFOMGYmVkRTjBmZlaEE4yZmRXhBGNmZkU4wZiZWRElH5m8TtJ+Sd+sxWZL6pW0O99n1fZdI6lP0i5JS2rxCyTtyH035WOTyUcr35XxrZI6a3V68hi7JTUfqWxmZpOo5AjmNmDpsNgqYEtELAC25GcknU31uONzss7NkmZknVuAlcCCfDXbXAEciIizgBuBG7Kt2cBq4EJgIbC6nsjMzGxyFEswEfHXwMCw8DJgfW6vBy6uxTdExMGIeALoAxZKmgOcHBEPREQAtw+r02xrE7AoRzdLgN6IGIiIA0AvP5/ozMyssMm+BtMREfsA8v30jM8FnqqV68/Y3NweHj+iTkQMAc8Ap47SlpmZTaKZU30CSS1iMUp8vHWOPKi0kmr6jY6ODhqNxpgnOpLBwcFD9a8+b2jM8sdyrONVvY9sZO6nsbmP2jPV/TTZCeZpSXMiYl9Of+3PeD9wRq3cPGBvxue1iNfr9EuaCZxCNSXXD3QPq9NodTIRsRZYC9DV1RXd3d2tirWl0WjQrH/FqnvGLL/nsvEf63hV7yMbmftpbO6j9kx1P032FNlmoLmqqwe4uxZfnivD5lNdzH8op9GelXRRXl+5fFidZluXAPfndZr7gMWSZuXF/cUZMzOzSVRsBCPps1QjidMk9VOt7Loe2ChpBfAkcClAROyUtBF4DBgCroqIF7KpK6lWpJ0E3JsvgFuBOyT1UY1clmdbA5KuA7ZluWsjYvhiAzMzK6xYgomI3xph16IRyq8B1rSIbwfObRF/jkxQLfatA9a1fbJmZjbh/Et+MzMrwgnGzMyKeLEsUz7hdNZWmu25/r1TeCZmZmV4BGNmZkU4wZiZWRFOMGZmVoQTjJmZFeEEY2ZmRTjBmJlZEU4wZmZWhBOMmZkV4QRjZmZF+Jf8LwL+Vb+ZTUcewZiZWREewUyQHd97pq0nWZqZnSg8gjEzsyI8gnmR8fUYM5supnWCkbQU+AQwA/h0RFw/xad0VJxszOx4Nm0TjKQZwKeAXwH6gW2SNkfEY1N7ZuPjZGNmx5tpm2CAhUBfRHwHQNIGYBlwXCaYus4JWkzQTqJyYjOz8ZrOCWYu8FTtcz9wYb2ApJXAyvw4KGnXMRzvNOAHx1B/0umGsuVbOO76aIq4n8bmPmrPZPTTvxhpx3ROMGoRiyM+RKwF1k7IwaTtEdE1EW1NV+6j9rifxuY+as9U99N0XqbcD5xR+zwP2DtF52JmdsKZzglmG7BA0nxJLwOWA5un+JzMzE4Y03aKLCKGJH0AuI9qmfK6iNhZ8JATMtU2zbmP2uN+Gpv7qD1T2k+KiLFLmZmZHaXpPEVmZmZTyAnGzMyKcII5RpKWStolqU/Sqqk+n6kkaY+kHZIekbQ9Y7Ml9Urane+zauWvyX7bJWnJ1J15WZLWSdov6Zu12FH3i6QLsn/7JN0kqdVS/OPSCH30+5K+l39Pj0h6T23fCddHAJLOkPRVSY9L2inpQxl/cf49RYRf43xRLR74NnAm8DLgG8DZU31eU9gfe4DThsX+B7Aqt1cBN+T22dlfLwfmZz/OmOrvUKhf3gG8CfjmsfQL8BDwFqrfeN0LvHuqv1vhPvp94L+2KHtC9lF+vznAm3L7NcDfZ3+8KP+ePII5NoduRxMRPwOat6Oxw5YB63N7PXBxLb4hIg5GxBNAH1V/TjsR8dfAwLDwUfWLpDnAyRHxQFT/Otxeq3PcG6GPRnJC9hFAROyLiK/n9rPA41R3LXlR/j05wRybVrejmTtF5/JiEMBXJD2ct+EB6IiIfVD9xwGcnvETve+Otl/m5vbw+HT3AUmP5hRac9rHfQRI6gTeCGzlRfr35ARzbMa8Hc0J5m0R8Sbg3cBVkt4xSln3XWsj9cuJ2F+3AP8SOB/YB/zPjJ/wfSTp1cCfAx+OiB+PVrRFbNL6ygnm2Ph2NDURsTff9wNfoJryejqH4+T7/ix+ovfd0fZLf24Pj09bEfF0RLwQEf8E/G8OT6Ge0H0k6aVUyeXOiPh8hl+Uf09OMMfGt6NJkl4l6TXNbWAx8E2q/ujJYj3A3bm9GVgu6eWS5gMLqC46niiOql9y2uNZSRflap/La3WmpeY/mOnXqP6e4ATuo/xetwKPR8THa7tenH9PU70q4nh/Ae+hWsnxbeBjU30+U9gPZ1KtVvkGsLPZF8CpwBZgd77PrtX5WPbbLqbZap9hffNZqime56n+z3HFePoF6KL6R/bbwP8i78QxHV4j9NEdwA7gUap/KOecyH2U3+/tVFNZjwKP5Os9L9a/J98qxszMivAUmZmZFeEEY2ZmRTjBmJlZEU4wZmZWhBOMmZkV4QRjNgJJH8s71j6ad/O9MOMNSU/W7z4r6S8kDeZ2Z/OuwJK6JX2pRduNvLtt807BmzL++tz3SN4x9+eeSFhvf4K/b7ekt9Y+3ybpkok+jp04pu0jk82OhaS3AO+junPtQUmnUd0xu+lHwNuAr0l6LdVdbo/WZRGxfVjsJuDGiLg7z+O8cbQ7Xt3AIPC3k3hMm8Y8gjFrbQ7wg4g4CBARP4i8FU7aQHXnBoBfBz7PxJhD7SaEEbFjtMKSZkj6I0nbcqT1OxnvzpHQJknfknRnc8Ql6T0Z+1o+B+RLeePE/wR8JEdP/zoP8Q5JfyvpOx7N2NFygjFr7SvAGZL+XtLNkv7NsP1bqP7xnUGVaO4axzHurE2R/VHGbgTul3SvpI/k6Gg0K4BnIuLNwJuB9+ctQaC60+6HqZ4JcibwNkmvAP6M6hfdbwdeBxARe4A/pRo9nR8Rf5NtzKH69fj7gOvH8R3tBOYEY9ZCRAwCFwArge8Dd0m6olbkBeBrwG8CJ+U/0EfrsvzH/PyI+Gge9zPALwGfo5qyelDSy0dpYzFwuaRHqG7bfirV/aaguudUf1Q3i3wE6AR+EfhOVM8GgeoWLaP5i4j4p4h4DOg46m9oJzQnGLMRRHUn30ZErAY+APy7YUU2AJ8ENk7wcfdGxLqIWAYMAeeOUlzAB2uJan5EfCX3HayVe4HqmuvRPha33sa0evywlecEY9ZCruZaUAudD3x3WLG/Af6QsUcBR3PcpXk7diT9M6oRyfdGqXIfcGWtzi/k3axH8i3gzLzmAtUIrOlZqsfwmk0IryIza+3VwCfzGsgQ1aNmV9YLRHWn2D9uo61FkupPD7w03++U9I+5/YOIeBfVlNcnJD2X8Y9GxD+M0vanqaa+vp4X8b/PKI++jYh/lPS7wJcl/bP5OaMAAABlSURBVIAjH5HwRWCTpGXAB9v4Xmaj8t2UzU4wkl4dEYOZkD4F7I6IG6f6vGz68RSZ2Ynn/bkoYCdwCtWqMrMJ5xGMmZkV4RGMmZkV4QRjZmZFOMGYmVkRTjBmZlaEE4yZmRXx/wE6+Iv0ktog3gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(lengths, bins=100)\n",
    "plt.grid()\n",
    "plt.xlabel('SMILES length')\n",
    "plt.ylabel('Counts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Counts')"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(lengths, bins=200)\n",
    "plt.grid()\n",
    "plt.xlim([0,200])\n",
    "plt.xlabel('SMILES length')\n",
    "plt.ylabel('Counts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "94.526483043485"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(np.array(lengths)<=100)/L*100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1768081\n"
     ]
    }
   ],
   "source": [
    "df_sub = df[np.array(lengths)<=100]\n",
    "print(len(df_sub))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100\n"
     ]
    }
   ],
   "source": [
    "lengths2 = list(map(len, df_sub['canonical_smiles'].values))\n",
    "print(np.max(lengths2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_sub.to_csv('chembl_24_100.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1820035\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chembl_id</th>\n",
       "      <th>canonical_smiles</th>\n",
       "      <th>standard_inchi</th>\n",
       "      <th>standard_inchi_key</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>CHEMBL153534</td>\n",
       "      <td>Cc1cc(cn1C)c2csc(N=C(N)N)n2</td>\n",
       "      <td>InChI=1S/C10H13N5S/c1-6-3-7(4-15(6)2)8-5-16-10...</td>\n",
       "      <td>MFRNFCWYPYSFQQ-UHFFFAOYSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CHEMBL440060</td>\n",
       "      <td>CC[C@H](C)[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@@H...</td>\n",
       "      <td>InChI=1S/C123H212N44O34S/c1-19-63(12)96(164-11...</td>\n",
       "      <td>RSEQNZQKBMRQNM-VRGFNVLHSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CHEMBL440245</td>\n",
       "      <td>CCCC[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCCCN...</td>\n",
       "      <td>InChI=1S/C160H268N50O41/c1-23-27-41-95-134(228...</td>\n",
       "      <td>FTKBTEIKPOYCEX-OZSLQWTKSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>CHEMBL440249</td>\n",
       "      <td>CC(C)C[C@@H]1NC(=O)CNC(=O)[C@@H](NC(=O)[C@H](N...</td>\n",
       "      <td>InChI=1S/C124H154ClN21O39/c1-57(2)48-81-112(17...</td>\n",
       "      <td>UYSXXKGACMHPIM-KFGDMSGDSA-N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>CHEMBL405398</td>\n",
       "      <td>Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4</td>\n",
       "      <td>InChI=1S/C19H21BrN6O/c20-15-2-1-3-17(18(15)22-...</td>\n",
       "      <td>VDSXZXJEWIWBCG-UHFFFAOYSA-N</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      chembl_id                                   canonical_smiles  \\\n",
       "0  CHEMBL153534                        Cc1cc(cn1C)c2csc(N=C(N)N)n2   \n",
       "1  CHEMBL440060  CC[C@H](C)[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@@H...   \n",
       "2  CHEMBL440245  CCCC[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCCCN...   \n",
       "3  CHEMBL440249  CC(C)C[C@@H]1NC(=O)CNC(=O)[C@@H](NC(=O)[C@H](N...   \n",
       "4  CHEMBL405398             Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4   \n",
       "\n",
       "                                      standard_inchi  \\\n",
       "0  InChI=1S/C10H13N5S/c1-6-3-7(4-15(6)2)8-5-16-10...   \n",
       "1  InChI=1S/C123H212N44O34S/c1-19-63(12)96(164-11...   \n",
       "2  InChI=1S/C160H268N50O41/c1-23-27-41-95-134(228...   \n",
       "3  InChI=1S/C124H154ClN21O39/c1-57(2)48-81-112(17...   \n",
       "4  InChI=1S/C19H21BrN6O/c20-15-2-1-3-17(18(15)22-...   \n",
       "\n",
       "            standard_inchi_key  \n",
       "0  MFRNFCWYPYSFQQ-UHFFFAOYSA-N  \n",
       "1  RSEQNZQKBMRQNM-VRGFNVLHSA-N  \n",
       "2  FTKBTEIKPOYCEX-OZSLQWTKSA-N  \n",
       "3  UYSXXKGACMHPIM-KFGDMSGDSA-N  \n",
       "4  VDSXZXJEWIWBCG-UHFFFAOYSA-N  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_table('../data/chembl_24_chemreps.txt')\n",
    "L = len(df)\n",
    "print(L)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "97738\n"
     ]
    }
   ],
   "source": [
    "smiles  = df['canonical_smiles'].values\n",
    "to_drop = []\n",
    "for i,sm in enumerate(smiles):\n",
    "    if len(sm)>100:\n",
    "        to_drop.append(i)\n",
    "    if df['chembl_id'][i]=='CHEMBL1201364':\n",
    "        to_drop.append(i)\n",
    "print(len(to_drop))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1722297\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chembl_id</th>\n",
       "      <th>canonical_smiles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>CHEMBL153534</td>\n",
       "      <td>Cc1cc(cn1C)c2csc(N=C(N)N)n2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>CHEMBL405398</td>\n",
       "      <td>Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>CHEMBL503634</td>\n",
       "      <td>COc1c(O)cc(O)c(C(=N)Cc2ccc(O)cc2)c1O</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>CHEMBL503643</td>\n",
       "      <td>CCOC(=O)c1cc2cc(ccc2[nH]1)C(=O)O</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>CHEMBL503870</td>\n",
       "      <td>C[C@H](NC(=O)OCc1ccccc1)C(=O)N[C@@H](C)C(=O)NN...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      chembl_id                                   canonical_smiles\n",
       "0  CHEMBL153534                        Cc1cc(cn1C)c2csc(N=C(N)N)n2\n",
       "4  CHEMBL405398             Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4\n",
       "5  CHEMBL503634               COc1c(O)cc(O)c(C(=N)Cc2ccc(O)cc2)c1O\n",
       "6  CHEMBL503643                   CCOC(=O)c1cc2cc(ccc2[nH]1)C(=O)O\n",
       "8  CHEMBL503870  C[C@H](NC(=O)OCc1ccccc1)C(=O)N[C@@H](C)C(=O)NN..."
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_dropped = df.drop(to_drop)\n",
    "df_dropped = df_dropped.drop(['standard_inchi', 'standard_inchi_key'], axis=1)\n",
    "L = len(df_dropped)\n",
    "print(L)\n",
    "df_dropped.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_dropped.to_csv('../data/chembl_24.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "smiles = df['canonical_smiles'].values\n",
    "\n",
    "# words = ['Cl', 'Br', 'At', 'Se', 'As', 'Si', 'Be', 'Ca', 'Mg', 'Li', 'Na', 'P+', 'O-', 'S-', 'Se-', 'N+', 'As+', 'Na+', 'Li+', 'H+',\\\n",
    "#         'K+', 'F-', 'Cl-', 'Br-', 'I-']\n",
    "# for w in words:\n",
    "#     cnt = 0\n",
    "#     for smile in smiles:\n",
    "#         if w in smile:\n",
    "#             if cnt<5:\n",
    "#                 print(smile)\n",
    "#             cnt += 1\n",
    "#     print(w, cnt/L*100, '\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "smiles = df['canonical_smiles'].values\n",
    "pro_sms = []\n",
    "for sm in smiles:\n",
    "    sm = ' '.join(list(sm))\n",
    "    before = ['C l -', 'C l', 'O -', 'N +', 'n +', 'B r -', 'B r', 'N a +', 'N a', 'I -', 'S i']\n",
    "    after = ['Cl-', 'Cl', 'O-', 'N+', 'n+', 'Br-', 'Br', 'Na+', 'Na', 'I-', 'Si']\n",
    "    for b,a in zip(before, after):\n",
    "        sm = sm.replace(b, a)\n",
    "    pro_sms.append(sm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chembl_id</th>\n",
       "      <th>canonical_smiles</th>\n",
       "      <th>standard_inchi</th>\n",
       "      <th>standard_inchi_key</th>\n",
       "      <th>processed_smiles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>CHEMBL153534</td>\n",
       "      <td>Cc1cc(cn1C)c2csc(N=C(N)N)n2</td>\n",
       "      <td>InChI=1S/C10H13N5S/c1-6-3-7(4-15(6)2)8-5-16-10...</td>\n",
       "      <td>MFRNFCWYPYSFQQ-UHFFFAOYSA-N</td>\n",
       "      <td>C c 1 c c ( c n 1 C ) c 2 c s c ( N = C ( N ) ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CHEMBL440060</td>\n",
       "      <td>CC[C@H](C)[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@@H...</td>\n",
       "      <td>InChI=1S/C123H212N44O34S/c1-19-63(12)96(164-11...</td>\n",
       "      <td>RSEQNZQKBMRQNM-VRGFNVLHSA-N</td>\n",
       "      <td>C C [ C @ H ] ( C ) [ C @ H ] ( N C ( = O ) [ ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CHEMBL440245</td>\n",
       "      <td>CCCC[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCCCN...</td>\n",
       "      <td>InChI=1S/C160H268N50O41/c1-23-27-41-95-134(228...</td>\n",
       "      <td>FTKBTEIKPOYCEX-OZSLQWTKSA-N</td>\n",
       "      <td>C C C C [ C @ H ] ( N C ( = O ) [ C @ H ] ( C ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>CHEMBL440249</td>\n",
       "      <td>CC(C)C[C@@H]1NC(=O)CNC(=O)[C@@H](NC(=O)[C@H](N...</td>\n",
       "      <td>InChI=1S/C124H154ClN21O39/c1-57(2)48-81-112(17...</td>\n",
       "      <td>UYSXXKGACMHPIM-KFGDMSGDSA-N</td>\n",
       "      <td>C C ( C ) C [ C @ @ H ] 1 N C ( = O ) C N C ( ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>CHEMBL405398</td>\n",
       "      <td>Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4</td>\n",
       "      <td>InChI=1S/C19H21BrN6O/c20-15-2-1-3-17(18(15)22-...</td>\n",
       "      <td>VDSXZXJEWIWBCG-UHFFFAOYSA-N</td>\n",
       "      <td>Br c 1 c c c c ( N c 2 n c n c 3 c c n c c 2 3...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      chembl_id                                   canonical_smiles  \\\n",
       "0  CHEMBL153534                        Cc1cc(cn1C)c2csc(N=C(N)N)n2   \n",
       "1  CHEMBL440060  CC[C@H](C)[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@@H...   \n",
       "2  CHEMBL440245  CCCC[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCCCN...   \n",
       "3  CHEMBL440249  CC(C)C[C@@H]1NC(=O)CNC(=O)[C@@H](NC(=O)[C@H](N...   \n",
       "4  CHEMBL405398             Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4   \n",
       "\n",
       "                                      standard_inchi  \\\n",
       "0  InChI=1S/C10H13N5S/c1-6-3-7(4-15(6)2)8-5-16-10...   \n",
       "1  InChI=1S/C123H212N44O34S/c1-19-63(12)96(164-11...   \n",
       "2  InChI=1S/C160H268N50O41/c1-23-27-41-95-134(228...   \n",
       "3  InChI=1S/C124H154ClN21O39/c1-57(2)48-81-112(17...   \n",
       "4  InChI=1S/C19H21BrN6O/c20-15-2-1-3-17(18(15)22-...   \n",
       "\n",
       "            standard_inchi_key  \\\n",
       "0  MFRNFCWYPYSFQQ-UHFFFAOYSA-N   \n",
       "1  RSEQNZQKBMRQNM-VRGFNVLHSA-N   \n",
       "2  FTKBTEIKPOYCEX-OZSLQWTKSA-N   \n",
       "3  UYSXXKGACMHPIM-KFGDMSGDSA-N   \n",
       "4  VDSXZXJEWIWBCG-UHFFFAOYSA-N   \n",
       "\n",
       "                                    processed_smiles  \n",
       "0  C c 1 c c ( c n 1 C ) c 2 c s c ( N = C ( N ) ...  \n",
       "1  C C [ C @ H ] ( C ) [ C @ H ] ( N C ( = O ) [ ...  \n",
       "2  C C C C [ C @ H ] ( N C ( = O ) [ C @ H ] ( C ...  \n",
       "3  C C ( C ) C [ C @ @ H ] 1 N C ( = O ) C N C ( ...  \n",
       "4  Br c 1 c c c c ( N c 2 n c n c 3 c c n c c 2 3...  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['processed_smiles'] = pro_sms\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "97737\n"
     ]
    }
   ],
   "source": [
    "to_drop = []\n",
    "for i,sm in enumerate(smiles):\n",
    "    if len(sm)>100:\n",
    "        to_drop.append(i)\n",
    "print(len(to_drop))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1722298\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chembl_id</th>\n",
       "      <th>canonical_smiles</th>\n",
       "      <th>processed_smiles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>CHEMBL153534</td>\n",
       "      <td>Cc1cc(cn1C)c2csc(N=C(N)N)n2</td>\n",
       "      <td>C c 1 c c ( c n 1 C ) c 2 c s c ( N = C ( N ) ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>CHEMBL405398</td>\n",
       "      <td>Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4</td>\n",
       "      <td>Br c 1 c c c c ( N c 2 n c n c 3 c c n c c 2 3...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>CHEMBL503634</td>\n",
       "      <td>COc1c(O)cc(O)c(C(=N)Cc2ccc(O)cc2)c1O</td>\n",
       "      <td>C O c 1 c ( O ) c c ( O ) c ( C ( = N ) C c 2 ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>CHEMBL503643</td>\n",
       "      <td>CCOC(=O)c1cc2cc(ccc2[nH]1)C(=O)O</td>\n",
       "      <td>C C O C ( = O ) c 1 c c 2 c c ( c c c 2 [ n H ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>CHEMBL503870</td>\n",
       "      <td>C[C@H](NC(=O)OCc1ccccc1)C(=O)N[C@@H](C)C(=O)NN...</td>\n",
       "      <td>C [ C @ H ] ( N C ( = O ) O C c 1 c c c c c 1 ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      chembl_id                                   canonical_smiles  \\\n",
       "0  CHEMBL153534                        Cc1cc(cn1C)c2csc(N=C(N)N)n2   \n",
       "4  CHEMBL405398             Brc1cccc(Nc2ncnc3ccncc23)c1NCCN4CCOCC4   \n",
       "5  CHEMBL503634               COc1c(O)cc(O)c(C(=N)Cc2ccc(O)cc2)c1O   \n",
       "6  CHEMBL503643                   CCOC(=O)c1cc2cc(ccc2[nH]1)C(=O)O   \n",
       "8  CHEMBL503870  C[C@H](NC(=O)OCc1ccccc1)C(=O)N[C@@H](C)C(=O)NN...   \n",
       "\n",
       "                                    processed_smiles  \n",
       "0  C c 1 c c ( c n 1 C ) c 2 c s c ( N = C ( N ) ...  \n",
       "4  Br c 1 c c c c ( N c 2 n c n c 3 c c n c c 2 3...  \n",
       "5  C O c 1 c ( O ) c c ( O ) c ( C ( = N ) C c 2 ...  \n",
       "6  C C O C ( = O ) c 1 c c 2 c c ( c c c 2 [ n H ...  \n",
       "8  C [ C @ H ] ( N C ( = O ) O C c 1 c c c c c 1 ...  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_dropped = df.drop(to_drop)\n",
    "df_dropped = df_dropped.drop(['standard_inchi', 'standard_inchi_key'], axis=1)\n",
    "L = len(df_dropped)\n",
    "print(L)\n",
    "df_dropped.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_dropped.to_csv('data/chembl_24.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "smiles = df_dropped['processed_smiles'].values\n",
    "rands = np.random.choice(L, L, replace=False)\n",
    "test_size = 10000\n",
    "\n",
    "with open('data/sentence_test.txt', 'a') as f:\n",
    "    for i in range(0, test_size):\n",
    "        f.write(smiles[rands[i]]+'\\n')\n",
    "        \n",
    "with open('data/sentence_train.txt', 'a') as f:\n",
    "    for i in range(test_size, L):\n",
    "        f.write(smiles[rands[i]]+'\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Create vocabulary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "smiles = df_dropped['processed_smiles'].values\n",
    "vocab = []\n",
    "for sm in smiles:\n",
    "    l = sm.split(' ')\n",
    "    for w in l:\n",
    "        if w not in vocab:\n",
    "            vocab.append(w)\n",
    "\n",
    "with open('data/vocab.txt', 'a') as f:\n",
    "    for v in vocab:\n",
    "        f.write(v+'\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Solubility dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SMILES</th>\n",
       "      <th>unknown</th>\n",
       "      <th>solubility</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>O=C(C)N</td>\n",
       "      <td>60-35-5</td>\n",
       "      <td>1.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NNC</td>\n",
       "      <td>60-34-4</td>\n",
       "      <td>1.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>O=C(C)O</td>\n",
       "      <td>64-19-7</td>\n",
       "      <td>1.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>N1CCCC1</td>\n",
       "      <td>123-75-1</td>\n",
       "      <td>1.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>O=C(N)NO</td>\n",
       "      <td>127-07-1</td>\n",
       "      <td>1.12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     SMILES   unknown  solubility\n",
       "0   O=C(C)N   60-35-5        1.58\n",
       "1       NNC   60-34-4        1.34\n",
       "2   O=C(C)O   64-19-7        1.22\n",
       "3   N1CCCC1  123-75-1        1.15\n",
       "4  O=C(N)NO  127-07-1        1.12"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sol = pd.read_csv('data/solubility.csv')\n",
    "df_sol.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SMILES</th>\n",
       "      <th>unknown</th>\n",
       "      <th>solubility</th>\n",
       "      <th>processed_smiles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>O=C(C)N</td>\n",
       "      <td>60-35-5</td>\n",
       "      <td>1.58</td>\n",
       "      <td>O = C ( C ) N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NNC</td>\n",
       "      <td>60-34-4</td>\n",
       "      <td>1.34</td>\n",
       "      <td>N N C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>O=C(C)O</td>\n",
       "      <td>64-19-7</td>\n",
       "      <td>1.22</td>\n",
       "      <td>O = C ( C ) O</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>N1CCCC1</td>\n",
       "      <td>123-75-1</td>\n",
       "      <td>1.15</td>\n",
       "      <td>N 1 C C C C 1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>O=C(N)NO</td>\n",
       "      <td>127-07-1</td>\n",
       "      <td>1.12</td>\n",
       "      <td>O = C ( N ) N O</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     SMILES   unknown  solubility processed_smiles\n",
       "0   O=C(C)N   60-35-5        1.58    O = C ( C ) N\n",
       "1       NNC   60-34-4        1.34            N N C\n",
       "2   O=C(C)O   64-19-7        1.22    O = C ( C ) O\n",
       "3   N1CCCC1  123-75-1        1.15    N 1 C C C C 1\n",
       "4  O=C(N)NO  127-07-1        1.12  O = C ( N ) N O"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "smiles = df_sol['SMILES'].values\n",
    "pro_sms = []\n",
    "for sm in smiles:\n",
    "    sm = ' '.join(list(sm))\n",
    "    before = ['C l -', 'C l', 'O -', 'N +', 'n +', 'B r -', 'B r', 'N a +', 'N a', 'I -', 'S i']\n",
    "    after = ['Cl-', 'Cl', 'O-', 'N+', 'n+', 'Br-', 'Br', 'Na+', 'Na', 'I-', 'Si']\n",
    "    for b,a in zip(before, after):\n",
    "        sm = sm.replace(b, a)\n",
    "    pro_sms.append(sm)\n",
    "\n",
    "df_sol['processed_smiles'] = pro_sms\n",
    "df_sol.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_sol.to_csv('data/solubility.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SMILES</th>\n",
       "      <th>unknown</th>\n",
       "      <th>solubility</th>\n",
       "      <th>processed_smiles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>O=C(C)N</td>\n",
       "      <td>60-35-5</td>\n",
       "      <td>1.58</td>\n",
       "      <td>O = C ( C ) N</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NNC</td>\n",
       "      <td>60-34-4</td>\n",
       "      <td>1.34</td>\n",
       "      <td>N N C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>O=C(C)O</td>\n",
       "      <td>64-19-7</td>\n",
       "      <td>1.22</td>\n",
       "      <td>O = C ( C ) O</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>N1CCCC1</td>\n",
       "      <td>123-75-1</td>\n",
       "      <td>1.15</td>\n",
       "      <td>N 1 C C C C 1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>O=C(N)NO</td>\n",
       "      <td>127-07-1</td>\n",
       "      <td>1.12</td>\n",
       "      <td>O = C ( N ) N O</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     SMILES   unknown  solubility processed_smiles\n",
       "0   O=C(C)N   60-35-5        1.58    O = C ( C ) N\n",
       "1       NNC   60-34-4        1.34            N N C\n",
       "2   O=C(C)O   64-19-7        1.22    O = C ( C ) O\n",
       "3   N1CCCC1  123-75-1        1.15    N 1 C C C C 1\n",
       "4  O=C(N)NO  127-07-1        1.12  O = C ( N ) N O"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sol = pd.read_csv('data/solubility.csv')\n",
    "df_sol.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test size 322\n",
      "Train size 968\n"
     ]
    }
   ],
   "source": [
    "N = len(df_sol)\n",
    "test_size = int(N*0.25)\n",
    "rands = np.random.choice(N,N, replace=False)\n",
    "df_test = df_sol.iloc[rands[:test_size]]\n",
    "print(\"Test size\", len(df_test))\n",
    "df_train = df_sol.iloc[rands[test_size:]]\n",
    "print(\"Train size\", len(df_train))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_train.to_csv('data/sol_train.csv')\n",
    "df_test.to_csv('data/sol_test.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
